﻿using System;

namespace Mono.Cecil
{
	// Token: 0x020000BB RID: 187
	public sealed class PInvokeInfo
	{
		// Token: 0x170001FF RID: 511
		// (get) Token: 0x0600079E RID: 1950 RVA: 0x000236F8 File Offset: 0x000218F8
		// (set) Token: 0x0600079F RID: 1951 RVA: 0x00004B46 File Offset: 0x00002D46
		public PInvokeAttributes Attributes
		{
			get
			{
				return (PInvokeAttributes)this.attributes;
			}
			set
			{
				this.attributes = (ushort)value;
			}
		}

		// Token: 0x17000200 RID: 512
		// (get) Token: 0x060007A0 RID: 1952 RVA: 0x00023710 File Offset: 0x00021910
		// (set) Token: 0x060007A1 RID: 1953 RVA: 0x00004B50 File Offset: 0x00002D50
		public string EntryPoint
		{
			get
			{
				return this.entry_point;
			}
			set
			{
				this.entry_point = value;
			}
		}

		// Token: 0x17000201 RID: 513
		// (get) Token: 0x060007A2 RID: 1954 RVA: 0x00023728 File Offset: 0x00021928
		// (set) Token: 0x060007A3 RID: 1955 RVA: 0x00004B5A File Offset: 0x00002D5A
		public ModuleReference Module
		{
			get
			{
				return this.module;
			}
			set
			{
				this.module = value;
			}
		}

		// Token: 0x17000202 RID: 514
		// (get) Token: 0x060007A4 RID: 1956 RVA: 0x00023740 File Offset: 0x00021940
		// (set) Token: 0x060007A5 RID: 1957 RVA: 0x00004B64 File Offset: 0x00002D64
		public bool IsNoMangle
		{
			get
			{
				return this.attributes.GetAttributes(1);
			}
			set
			{
				this.attributes = this.attributes.SetAttributes(1, value);
			}
		}

		// Token: 0x17000203 RID: 515
		// (get) Token: 0x060007A6 RID: 1958 RVA: 0x00023760 File Offset: 0x00021960
		// (set) Token: 0x060007A7 RID: 1959 RVA: 0x00004B7A File Offset: 0x00002D7A
		public bool IsCharSetNotSpec
		{
			get
			{
				return this.attributes.GetMaskedAttributes(6, 0U);
			}
			set
			{
				this.attributes = this.attributes.SetMaskedAttributes(6, 0U, value);
			}
		}

		// Token: 0x17000204 RID: 516
		// (get) Token: 0x060007A8 RID: 1960 RVA: 0x00023780 File Offset: 0x00021980
		// (set) Token: 0x060007A9 RID: 1961 RVA: 0x00004B91 File Offset: 0x00002D91
		public bool IsCharSetAnsi
		{
			get
			{
				return this.attributes.GetMaskedAttributes(6, 2U);
			}
			set
			{
				this.attributes = this.attributes.SetMaskedAttributes(6, 2U, value);
			}
		}

		// Token: 0x17000205 RID: 517
		// (get) Token: 0x060007AA RID: 1962 RVA: 0x000237A0 File Offset: 0x000219A0
		// (set) Token: 0x060007AB RID: 1963 RVA: 0x00004BA8 File Offset: 0x00002DA8
		public bool IsCharSetUnicode
		{
			get
			{
				return this.attributes.GetMaskedAttributes(6, 4U);
			}
			set
			{
				this.attributes = this.attributes.SetMaskedAttributes(6, 4U, value);
			}
		}

		// Token: 0x17000206 RID: 518
		// (get) Token: 0x060007AC RID: 1964 RVA: 0x000237C0 File Offset: 0x000219C0
		// (set) Token: 0x060007AD RID: 1965 RVA: 0x00004BBF File Offset: 0x00002DBF
		public bool IsCharSetAuto
		{
			get
			{
				return this.attributes.GetMaskedAttributes(6, 6U);
			}
			set
			{
				this.attributes = this.attributes.SetMaskedAttributes(6, 6U, value);
			}
		}

		// Token: 0x17000207 RID: 519
		// (get) Token: 0x060007AE RID: 1966 RVA: 0x000237E0 File Offset: 0x000219E0
		// (set) Token: 0x060007AF RID: 1967 RVA: 0x00004BD6 File Offset: 0x00002DD6
		public bool SupportsLastError
		{
			get
			{
				return this.attributes.GetAttributes(64);
			}
			set
			{
				this.attributes = this.attributes.SetAttributes(64, value);
			}
		}

		// Token: 0x17000208 RID: 520
		// (get) Token: 0x060007B0 RID: 1968 RVA: 0x00023800 File Offset: 0x00021A00
		// (set) Token: 0x060007B1 RID: 1969 RVA: 0x00004BED File Offset: 0x00002DED
		public bool IsCallConvWinapi
		{
			get
			{
				return this.attributes.GetMaskedAttributes(1792, 256U);
			}
			set
			{
				this.attributes = this.attributes.SetMaskedAttributes(1792, 256U, value);
			}
		}

		// Token: 0x17000209 RID: 521
		// (get) Token: 0x060007B2 RID: 1970 RVA: 0x00023828 File Offset: 0x00021A28
		// (set) Token: 0x060007B3 RID: 1971 RVA: 0x00004C0C File Offset: 0x00002E0C
		public bool IsCallConvCdecl
		{
			get
			{
				return this.attributes.GetMaskedAttributes(1792, 512U);
			}
			set
			{
				this.attributes = this.attributes.SetMaskedAttributes(1792, 512U, value);
			}
		}

		// Token: 0x1700020A RID: 522
		// (get) Token: 0x060007B4 RID: 1972 RVA: 0x00023850 File Offset: 0x00021A50
		// (set) Token: 0x060007B5 RID: 1973 RVA: 0x00004C2B File Offset: 0x00002E2B
		public bool IsCallConvStdCall
		{
			get
			{
				return this.attributes.GetMaskedAttributes(1792, 768U);
			}
			set
			{
				this.attributes = this.attributes.SetMaskedAttributes(1792, 768U, value);
			}
		}

		// Token: 0x1700020B RID: 523
		// (get) Token: 0x060007B6 RID: 1974 RVA: 0x00023878 File Offset: 0x00021A78
		// (set) Token: 0x060007B7 RID: 1975 RVA: 0x00004C4A File Offset: 0x00002E4A
		public bool IsCallConvThiscall
		{
			get
			{
				return this.attributes.GetMaskedAttributes(1792, 1024U);
			}
			set
			{
				this.attributes = this.attributes.SetMaskedAttributes(1792, 1024U, value);
			}
		}

		// Token: 0x1700020C RID: 524
		// (get) Token: 0x060007B8 RID: 1976 RVA: 0x000238A0 File Offset: 0x00021AA0
		// (set) Token: 0x060007B9 RID: 1977 RVA: 0x00004C69 File Offset: 0x00002E69
		public bool IsCallConvFastcall
		{
			get
			{
				return this.attributes.GetMaskedAttributes(1792, 1280U);
			}
			set
			{
				this.attributes = this.attributes.SetMaskedAttributes(1792, 1280U, value);
			}
		}

		// Token: 0x1700020D RID: 525
		// (get) Token: 0x060007BA RID: 1978 RVA: 0x000238C8 File Offset: 0x00021AC8
		// (set) Token: 0x060007BB RID: 1979 RVA: 0x00004C88 File Offset: 0x00002E88
		public bool IsBestFitEnabled
		{
			get
			{
				return this.attributes.GetMaskedAttributes(48, 16U);
			}
			set
			{
				this.attributes = this.attributes.SetMaskedAttributes(48, 16U, value);
			}
		}

		// Token: 0x1700020E RID: 526
		// (get) Token: 0x060007BC RID: 1980 RVA: 0x000238EC File Offset: 0x00021AEC
		// (set) Token: 0x060007BD RID: 1981 RVA: 0x00004CA1 File Offset: 0x00002EA1
		public bool IsBestFitDisabled
		{
			get
			{
				return this.attributes.GetMaskedAttributes(48, 32U);
			}
			set
			{
				this.attributes = this.attributes.SetMaskedAttributes(48, 32U, value);
			}
		}

		// Token: 0x1700020F RID: 527
		// (get) Token: 0x060007BE RID: 1982 RVA: 0x00023910 File Offset: 0x00021B10
		// (set) Token: 0x060007BF RID: 1983 RVA: 0x00004CBA File Offset: 0x00002EBA
		public bool IsThrowOnUnmappableCharEnabled
		{
			get
			{
				return this.attributes.GetMaskedAttributes(12288, 4096U);
			}
			set
			{
				this.attributes = this.attributes.SetMaskedAttributes(12288, 4096U, value);
			}
		}

		// Token: 0x17000210 RID: 528
		// (get) Token: 0x060007C0 RID: 1984 RVA: 0x00023938 File Offset: 0x00021B38
		// (set) Token: 0x060007C1 RID: 1985 RVA: 0x00004CD9 File Offset: 0x00002ED9
		public bool IsThrowOnUnmappableCharDisabled
		{
			get
			{
				return this.attributes.GetMaskedAttributes(12288, 8192U);
			}
			set
			{
				this.attributes = this.attributes.SetMaskedAttributes(12288, 8192U, value);
			}
		}

		// Token: 0x060007C2 RID: 1986 RVA: 0x00004CF8 File Offset: 0x00002EF8
		public PInvokeInfo(PInvokeAttributes attributes, string entryPoint, ModuleReference module)
		{
			this.attributes = (ushort)attributes;
			this.entry_point = entryPoint;
			this.module = module;
		}

		// Token: 0x040002A4 RID: 676
		private ushort attributes;

		// Token: 0x040002A5 RID: 677
		private string entry_point;

		// Token: 0x040002A6 RID: 678
		private ModuleReference module;
	}
}
